package com.heima.article.mapper;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.heima.model.article.dtos.ArticleCommentDto;
import com.heima.model.article.dtos.ArticleHomeDto;
import com.heima.model.article.pojos.ApArticle;
import com.heima.model.article.vos.ArticleCommnetVo;
import org.apache.ibatis.annotations.Param;

import java.util.Date;
import java.util.List;
import java.util.Map;

/**
 * <p>
 * 文章信息表，存储已发布的文章 Mapper 接口
 * </p>
 *
 * @author lin
 * @since 2025-06-10
 */
public interface ApArticleMapper extends BaseMapper<ApArticle> {

    /**
     * 加载文章列表
     *
     * @param dto  请求参数
     * @param type 1 加载更多  2 加载最新
     */
    List<ApArticle> loadArticleList(@Param("dto") ArticleHomeDto dto, @Param("type") Short type);

    /**
     * 查询相关图片
     *
     * @param imgUrl 图片url
     */
    List<ApArticle> queryRelatedImages(Integer imgUrl);

    /**
     * 查询最近五天文章列表
     *
     * @param dayParam 查询参数
     */
    List<ApArticle> findArticleListByLast5days(@Param("dayParam") Date dayParam);

    Map<String, Object> queryLikesAndConllections(
            @Param("wmUserId") Integer wmUserId,
            @Param("beginDate") Date beginDate,
            @Param("endDate") Date endDate);

    List<ArticleCommnetVo> findNewsComments(@Param("dto") ArticleCommentDto dto);

    int findNewsCommentsCount(@Param("dto")  ArticleCommentDto dto);
}
